////https://www.luogu.com.cn/problem/P1588
//
//#include<iostream>
//#include<queue>
//#include<cstring>
//using namespace std;
//int x, y;
//const int N= 2e5 + 10;
//int n[N];
//
//int dx[] = {-1,1,0 };
//
//int bfs()
//{
//	queue<int> p;
//	p.push(x);
//	n[x] = 0;
//	while (!p.empty())
//	{
//		int i = p.front();
//		p.pop();
//		dx[2] = i;
//		for (int k = 0; k < 3; k++)
//		{
//			if (i > y && (k == 1 || k == 2)) continue;
//			int nx = i + dx[k];
//			if (nx < 0 || n[nx] != -1) continue;
//			if (nx == y) return n[i] + 1;
//			p.push(nx);
//			n[nx] = n[i] + 1;
//		}
//	}
//	return -1;
//}
//
//int main()
//{
//	int t;
//	cin >> t;
//	while (t--)
//	{
//		memset(n, -1, sizeof(n));
//		cin >> x >> y;
//		cout << bfs() << endl;
//	}
//	return 0;
//}